// use std::fs;
// use std::io::{BufRead, Write};
// use std::process::{Command, Stdio};
// use tauri::path::BaseDirectory;
// use tauri::{App, Manager};
//
// pub fn protocol_setup(app: &mut App) -> std::result::Result<(), Box<dyn std::error::Error>> {
//     let platform = tauri_plugin_os::platform();
//
//     match platform {
//         "windows" => {
//             let _ = set_window_protocol(app);
//         }
//         _ => {
//             println!("Unsupported OS");
//         }
//     }
//
//     Ok(())
// }
//
// fn set_window_protocol(app: &mut App) -> std::result::Result<(), Box<dyn std::error::Error>> {
//     let config = app.config();
//     let app_name = match &config.product_name {
//         Some(app_name) => app_name.as_str(),
//         None => "download_manager.exe",
//     };
//
//     let app_path = app
//         .path()
//         .resolve(format!("{}.exe", app_name), BaseDirectory::Resource)?;
//
//     let protocol_path = app.path().resolve(
//         "resources/download_manager_protocol.reg",
//         BaseDirectory::Resource,
//     )?;
//
//     let content = fs::read(protocol_path.as_path())?;
//
//     let mut result = String::new();
//
//     for line in content.lines() {
//         if let Ok(mut line) = line {
//             if line.contains("%1") {
//                 let app_path = app_path
//                     .as_path()
//                     .to_str()
//                     .unwrap()
//                     .replace(r"\\?\", "")
//                     .replace(r"\", r"\\");
//                 line = format!("@=\"\\\"{}\\\" \\\"%1\\\"\"", app_path);
//             }
//             result.push_str(&line);
//             result.push('\n');
//         }
//     }
//
//     let mut file = fs::File::create(protocol_path.as_path())?;
//
//     file.write_all(result.as_bytes())?;
//
//     let protocol_path = protocol_path
//         .as_path()
//         .to_str()
//         .unwrap()
//         .replace(r"\\?\", "");
//
//     let mut command = Command::new("runas");
//     command
//         .arg("/noprofile") // 可选的，使用特定管理员帐户
//         .arg("/user:Administrator") // 可选的，使用特定管理员帐户
//         .arg(format!("regedit"))
//         .arg("/s")
//         .arg(protocol_path.clone());
//
//     println!("{:?}", command);
//
//     let output = Command::new("runas")
//         .arg("/noprofile") // 可选的，使用特定管理员帐户
//         .arg("/user:Administrator") // 可选的，使用特定管理员帐户
//         .arg(format!("regedit /s {}", protocol_path))
//         .stdout(Stdio::inherit()) // 继承标准输出
//         .stderr(Stdio::inherit())
//         .output()
//         .expect("Failed to execute regedit command");
//
//     if !output.status.success() {
//         eprintln!(
//             "Error executing regedit: {}",
//             String::from_utf8_lossy(&output.stderr)
//         );
//     } else {
//         println!("Reg file executed successfully!");
//     }
//     Ok(())
// }
